package com.example.quartzdemo.springTask;

import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * TODO  如果想要代码并行执行的话，还可以通过@EnableAsync 和 @Async这两个注解实现
 *
 * @ClassName SpringTaskTestAsync
 * @Author xiaojiang
 * @Date 2021/11/15 上午 11:34
 */
@Component
@EnableAsync
public class SpringTaskTestAsync {

    /**
     *  TODO   fixedDelay：固定延迟执行。距离上一次调用成功后2秒才执。
     *         reportCurrentTimeWithFixedDelay()方法会每5秒执行一次，
     *         因为@Scheduled任务都在Spring创建的大小为1的默认线程池中执行。
     *         -----------------------------------------------------
     *         reportCurrentTimeWithFixedDelay() 方法上加上 @Async 注解后
     *         reportCurrentTimeWithFixedDelay()方法会每 2 秒执行一次。
     * @Author 江
     * @Date 2021/11/15 上午 11:36
     */
    //@Async
    @Scheduled(fixedDelay = 2000)
    public void reportCurrentTimeWithFixedDelay() {
        System.out.println("Fixed Delay Task : The time is now {}");
    }


}
